package com.jlpay.open.jlpay.sdk.java.model.trans.union.request;

import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import com.jlpay.open.jlpay.sdk.java.model.OrgBaseReq;
import com.jlpay.open.jlpay.sdk.java.model.trans.dto.TerminalInfoDto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

/**
 *
 * @author dengwenning
 * @since 2024/9/23
 **/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class UnionJsPayRequest extends OrgBaseReq {

    /**
     * 商户号
     */
    private String mchId;
    /**
     * 终端号
     */
    private String termNo;
    /**
     * 交易类型
     */
    private String payType;
    /**
     * 银联支付标识
     */
    private String appUpIdentifier;
    /**
     * 用户授权码
     */
    private String userAuthCode;
    /**
     * 用户标识
     */
    private String userId;
    /**
     * 商户订单号
     */
    private String outTradeNo;
    /**
     * 订单有效期
     */
    private String paymentValidTime;
    /**
     * 商品标题
     */
    private String body;
    /**
     * 商品描述
     */
    private String attach;
    /**
     * 交易金额
     */
    private String totalFee;
    /**
     * 备注
     */
    private String remark;
    /**
     * 回调地址
     */
    private String notifyUrl;
    /**
     * 操作员
     */
    private String opUserId;
    /**
     * 门店号
     */
    private String opShopId;
    /**
     * 终端设备号
     */
    private String deviceInfo;
    /**
     * 终端IP
     */
    private String mchCreateIp;
    /**
     * 经度
     */
    private String longitude;
    /**
     * 纬度
     */
    private String latitude;
    /**
     * 支付成功跳转
     */
    private String frontUrl;
    /**
     * 支付失败跳转
     */
    private String frontFailUrl;
    /**
     * 二维码地址
     */
    private String qrCode;
    /**
     * 终端信息
     */
    private TerminalInfoDto terminalInfo;

    @Override
    public String path() {
        return "/open/trans/unionjspay";
    }
}
